package br.com.fiap.sas.managedbean;

import java.util.Date;

import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

import br.com.fiap.sas.bean.Movimentacao;
import br.com.fiap.sas.dao.MovimentacaoDAO;

@ManagedBean
public class PagamentoMB {

	private String codigoBarras;
	private Double valor;
	private Date vencimento;
	private String descricao;
	private String agendada;
	private Date agendamento;
	private String senhaDigitada;

	public String pagarConta(){
		valor = valor * -1;
		Movimentacao movimentacao = new Movimentacao();
		movimentacao.setValor(valor);
		movimentacao.setTipoMovimentacao("PAGAMENTO");
		movimentacao.setDescricao(descricao);
		movimentacao.setVencimento(vencimento);

		FacesContext facesContext = FacesContext.getCurrentInstance();	
		CorrentistaMB cmb = (CorrentistaMB)	facesContext.getExternalContext().getSessionMap().get("correntistaMB");
		
		movimentacao.setCodigoOrigem(cmb.getCorrentista().getAgenciaConta().getCodigo());
		
		if(agendada.equals("hoje")) {
			try {
				MovimentacaoDAO.incluirMovimentacaoDia(movimentacao);

				return "pagamentoFinalizado";
			} catch (Exception e) {
				System.out.println("Erro: " + e.getMessage());
				return "erro";
			}
		}else{
			movimentacao.setDataHoraEfetivacao(agendamento);
			try {
				MovimentacaoDAO.incluirMovimentacaoAgendamento(movimentacao);
				return "agendamentoFinalizado";
			} catch (Exception e) {
				System.out.println("Erro: " + e.getMessage());
				return "erro";
			}
		}
	}

	public String getCodigoBarras() {
		return codigoBarras;
	}

	public void setCodigoBarras(String codigoBarras) {
		this.codigoBarras = codigoBarras;
	}

	public Double getValor() {
		return valor;
	}

	public void setValor(Double valor) {
		this.valor = valor;
	}

	public Date getVencimento() {
		return vencimento;
	}

	public void setVencimento(Date vencimento) {
		this.vencimento = vencimento;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public String getAgendada() {
		return agendada;
	}

	public void setAgendada(String agendada) {
		this.agendada = agendada;
	}

	public Date getAgendamento() {
		return agendamento;
	}

	public void setAgendamento(Date agendamento) {
		this.agendamento = agendamento;
	}

	public String getSenhaDigitada() {
		return senhaDigitada;
	}

	public void setSenhaDigitada(String senhaDigitada) {
		this.senhaDigitada = senhaDigitada;
	}
}